perm filename ARMINT.SAI[PNT,HE]4 blob
sn#346145 filedate 1978-04-05 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 ! CREATED DEC 30, 1977 ALL PNT,MSM CHANGED TO PNT,HE
C00005 ENDMK
C⊗;
! CREATED DEC 30, 1977 ALL PNT,MSM CHANGED TO PNT,HE ;
REQUIRE "MOVE.DEF[PNT,HE]" SOURCE_FILE;
REQUIRE "TLKF5B[PNT,HE]" LOAD_MODULE;
! NOTE THAT TLKEF5[PNT,MSM] IS NOT THE SAME AS TLKEF5[11,BES];
EXTERNAL INTEGER PROCEDURE TLKEF5(REAL ARRAY TNS,ANGLES);
! fills TNS with transpose(<arm trans>), ANGLES with
joint angles (ANGLES[7]=hand) in degrees & inches.
Returns 0 if all ok, otherwise returns ERROR CODE;
PRESET_WITH
"ELF IS BUSY, SOMEONE IS USING IT",
"ELF STATUS WORD INDICATES ERROR CONDITION",
"UNABLE TO SERO MASTER NUMBER IN ELF",
"ELF NOT TRANSFERRING ARM POSITION",
"BAD READ FROM ELF DURING POSITION DATA TRANSFER",
"IOPDLOV WHEN TRYING TO SAVE CHANNEL 1 FOR ELF";
INTERNAL STRING ARRAY ARMERR[1:6];
INTERNAL REAL ARRAY BANGLE,YANGLE[1:7];
INTERNAL PROCEDURE READ_ARM(INTEGER ARM);
BEGIN
INTEGER I,J;
OWN REAL ARRAY BESTNS[1:4,1:3], A[1:5,1:4],BESANGLES[1:7];
IF ARM=BLUE
THEN BEGIN
IF (I←TLKEF5(BESTNS,BESANGLES))>0 THEN
ABORT1(ARMERR[I],NULL);
ARRCLR(A);
FOR I← 1 STEP 1 UNTIL 3
DO FOR J←1 STEP 1 UNTIL 4
DO A[I,J]←BESTNS[J,I];
A[4,4]←1.0;
SETABS(F_BARM,A);
FOR I←1 STEP 1 UNTIL 7 DO BANGLE[I]←BESANGLES[I];
BHAND←BESANGLES[7]; ! RETURNS BLUE HAND OPENING;
END
ELSE ABORT1("CANT READ YELLOW ARM YET",NULL);
END;
PROCEDURE READ_BLUE;
READ_ARM(BLUE);
! PROCEDURE READ_YELLOW(REAL ARRAY A);
! READ_TRANS("YELLOW", A);
IFC NOT DECLARATION(#MOVE) THENC DEFINE #MOVE=TRUE;ENDC
IFC #MOVE THENC
REQUIRE "MOVARM[PNT,HE]" LOAD_MODULE;
EXTERNAL PROCEDURE DRIVE(INTEGER ARM,JOINT,ABSREL; REAL DIF,TT(2.0));
EXTERNAL PROCEDURE MOVE(RPTR(FRAME)ARM,DEST;real tt(2.0));
EXTERNAL PROCEDURE CENTER(INTEGER ARM);
ELSEC
PROCEDURE DUMMY;
PRINT(#VERSION);
DEFINE DRIVE(A,J,D,T,TT)"[][]"=[ DUMMY ],
CENTER(A,J,D,T,TT)"[][]"=[ DUMMY ],
MOVE(A,J,D,T,TT)"[][]"=[ DUMMY ];
ENDC